const { getRoleList, addRole, queryRoleOfId, queryRoleOfName, delRole } = require("../models/roleModel")

module.exports = {
  // 获取角色列表
  getRoleList: async (ctx) => {
    // 获取角色列表
    let res = await getRoleList();

    if (res.length !== 0) {
      ctx.body = {
        status: 200,
        msg: "获取成功",
        data: res
      }
    } else {
      ctx.body = {
        status: 205,
        msg: "暂无数据",
        data: []
      }
    }
  },
  // 查询角色
  queryRole: async (ctx) => {
    const { role_id } = ctx.request.query;
    // 通过id查询角色
    let res = await queryRoleOfId(role_id);
    // 如果res长度为0 没有查询到
    if (res.length === 0) {
      return ctx.body = {
        status: 205,
        msg: "查询失败，没有该角色"
      }
    }
    ctx.body = {
      status: 200,
      msg: "获取成功",
      data: res
    }
  },
  // 添加角色
  addRole: async (ctx) => {
    const { role_id, role_name } = ctx.request.body;
    // 通过id查询角色
    let queryRoleId = await queryRoleOfId(role_id);
    // 如果queryRoleId长度不等于0 则已有该id
    if (queryRoleId.length !== 0) {
      return ctx.body = {
        status: 205,
        msg: "已有该角色id"
      }
    }

    // 通过name查询角色
    let queryRoleName = await queryRoleOfName(role_name);
    // 如果queryRoleName长度不等于0 则已有该name
    if (queryRoleName.length !== 0) {
      return ctx.body = {
        status: 205,
        msg: "已有该角色名"
      }
    }

    // 添加角色
    let res = await addRole(role_id, role_name);
    if (res.affectedRows === 1) {
      ctx.body = {
        status: 200,
        msg: "添加成功"
      }
    }
  },
  // 删除角色
  delRole: async (ctx) => {
    const { role_id } = ctx.request.body;
    let res = await delRole(role_id);

    if (res.affectedRows === 1) {
      ctx.body = {
        status: 200,
        msg: "删除成功"
      }
    } else {
      ctx.body = {
        status: 205,
        msg: "删除失败"
      }
    }
  }
}